diff --git a/tests/mocks/database/schema/skeleton.php b/tests/mocks/database/schema/skeleton.php
index 05499f8..18e1ddd 100644
--- a/tests/mocks/database/schema/skeleton.php
+++ b/tests/mocks/database/schema/skeleton.php
@@ -41,8 +41,7 @@
 
 		return static::$db;
 	}
-	
-	
+
 	/**
 	 * Create the dummy tables
 	 *
@@ -54,20 +53,20 @@
 		static::$forge->add_field(array(
 			'id' => array(
 				'type' => 'INTEGER',
-				'constraint' => 3,
+				'constraint' => 3
 			),
 			'name' => array(
 				'type' => 'VARCHAR',
-				'constraint' => 40,
+				'constraint' => 40
 			),
 			'email' => array(
 				'type' => 'VARCHAR',
-				'constraint' => 100,
+				'constraint' => 100
 			),
 			'country' => array(
 				'type' => 'VARCHAR',
-				'constraint' => 40,
-			),
+				'constraint' => 40
+			)
 		));
 		static::$forge->add_key('id', TRUE);
 		static::$forge->create_table('user', (strpos(static::$driver, 'pgsql') === FALSE));
@@ -76,15 +75,15 @@
 		static::$forge->add_field(array(
 			'id' => array(
 				'type' => 'INTEGER',
-				'constraint' => 3,
+				'constraint' => 3
 			),
 			'name' => array(
 				'type' => 'VARCHAR',
-				'constraint' => 40,
+				'constraint' => 40
 			),
 			'description' => array(
-				'type' => 'TEXT',
-			),
+				'type' => 'TEXT'
+			)
 		));
 		static::$forge->add_key('id', TRUE);
 		static::$forge->create_table('job', (strpos(static::$driver, 'pgsql') === FALSE));
@@ -93,15 +92,15 @@
 		static::$forge->add_field(array(
 			'id' => array(
 				'type' => 'INTEGER',
-				'constraint' => 3,
+				'constraint' => 3
 			),
 			'key' => array(
 				'type' => 'VARCHAR',
-				'constraint' => 40,
+				'constraint' => 40
 			),
 			'value' => array(
-				'type' => 'TEXT',
-			),
+				'type' => 'TEXT'
+			)
 		));
 		static::$forge->add_key('id', TRUE);
 		static::$forge->create_table('misc', (strpos(static::$driver, 'pgsql') === FALSE));
@@ -120,28 +119,29 @@
 				array('id' => 1, 'name' => 'Derek Jones', 'email' => 'derek@world.com', 'country' => 'US'),
 				array('id' => 2, 'name' => 'Ahmadinejad', 'email' => 'ahmadinejad@world.com', 'country' => 'Iran'),
 				array('id' => 3, 'name' => 'Richard A Causey', 'email' => 'richard@world.com', 'country' => 'US'),
-				array('id' => 4, 'name' => 'Chris Martin', 'email' => 'chris@world.com', 'country' => 'UK'),
+				array('id' => 4, 'name' => 'Chris Martin', 'email' => 'chris@world.com', 'country' => 'UK')
 			),
 			'job' => array(
-				array('id' => 1, 'name' => 'Developer', 'description' => 'Awesome job, but sometimes makes you bored'), 
+				array('id' => 1, 'name' => 'Developer', 'description' => 'Awesome job, but sometimes makes you bored'),
 				array('id' => 2, 'name' => 'Politician', 'description' => 'This is not really a job'),
-    			array('id' => 3, 'name' => 'Accountant', 'description' => 'Boring job, but you will get free snack at lunch'),
-			    array('id' => 4, 'name' => 'Musician', 'description' => 'Only Coldplay can actually called Musician'),
+    				array('id' => 3, 'name' => 'Accountant', 'description' => 'Boring job, but you will get free snack at lunch'),
+				array('id' => 4, 'name' => 'Musician', 'description' => 'Only Coldplay can actually called Musician')
 			),
 			'misc' => array(
-				array('id' => 1, 'key' => '\\xxxfoo456', 'value' => 'Entry with \\xxx'), 
-				array('id' => 2, 'key' => '\\%foo456', 'value' => 'Entry with \\%'),
-			),
+				array('id' => 1, 'key' => '\\xxxfoo456', 'value' => 'Entry with \\xxx'),
+				array('id' => 2, 'key' => '\\%foo456', 'value' => 'Entry with \\%')
+			)
 		);
 
-		foreach ($data as $table => $dummy_data) 
+		foreach ($data as $table => $dummy_data)
 		{
 			static::$db->truncate($table);
 
 			foreach ($dummy_data as $single_dummy_data)
 			{
-				static::$db->insert($table, $single_dummy_data); 
+				static::$db->insert($table, $single_dummy_data);
 			}
 		}
 	}
+
 }
\ No newline at end of file
